package com.againstsky.algorithm.sort;

import com.againstsky.algorithm.bean.SortBase;

/**
 * Created by agasinst on 2017/9/25.
 * 自下向上归并排序，把一个大数组看成一个个微型的两个元素的数组，然后慢慢向上归并
 */
public class DownTopMergeSort extends MergeSortBase{

    @Override
    public void sort(Comparable[] a) {

        int N=a.length;
        aux=new Comparable[N];
        for (int sz=1;sz<N;sz+=sz)
            for (int lo=0;lo<N-sz;lo+=sz+sz)
                merge(a,lo,lo+sz-1,Math.min(lo+sz+sz-1,N-1));
    }
}
